package com.woniuxy.woniuticket.utils;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;

public class ImageUtil {
	  private char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J',
              'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
              'X', 'Y','3', '4', '5', '6', '7', '8', '9','a','b','c','d','e','f','g','h',
              'j','k','m','n','r','s','t','u','v','w','x','y'};
	public  Object[] createImage() {
        Object[] obj = new Object[2];
        
        int width = 63;  
        int height = 37;  
        Random random = new Random();  
   
  
        //生成缓冲区image类  
        BufferedImage image = new BufferedImage(width, height, 1);  
        //产生image类的Graphics用于绘制操作  
        Graphics g = image.getGraphics();  
        //Graphics类的样式  
        g.setColor(this.getColor(200, 250));  
        g.setFont(new Font("Times New Roman",0,28));  
        g.fillRect(0, 0, width, height);  
        //绘制干扰线  
        for(int i=0;i<40;i++){  
            g.setColor(this.getColor(130, 200));  
            int x = random.nextInt(width);  
            int y = random.nextInt(height);  
            int x1 = random.nextInt(12);  
            int y1 = random.nextInt(12);  
            g.drawLine(x, y, x + x1, y + y1);  
        }  
  
        //绘制字符  
        String strCode = "";  
        for(int i=0;i<4;i++){  
            String rand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);  
            strCode = strCode + rand;  
            g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));  
            g.drawString(rand, 13*i+6, 28);  
        }  
        
        obj[0] = strCode.toString();
        obj[1] = image;
        return obj;
    }
	
    public  Color getColor(int fc,int bc){  
        Random random = new Random();  
        if(fc>255)  
            fc = 255;  
        if(bc>255)  
            bc = 255;  
        int r = fc + random.nextInt(bc - fc);  
        int g = fc + random.nextInt(bc - fc);  
        int b = fc + random.nextInt(bc - fc);  
        return new Color(r,g,b);  
    }  
    
}
